package LinkedList;

import Node.ListNode;

public class GetIntersectionNode {

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        // p1指向A链表头结点，P2指向B链表头结点
        ListNode p1 = headA;
        ListNode p2 = headB;
        while (p1 != p2) {
            // p1走一步，如果走到A链表结尾，则转到B链表
            if (p1.next == null)
                p1 = headA;
            else
                p1 = p1.next;
            // p2走一步，如果走到B链表结尾，则转到A链表
            if (p2.next == null)
                p2 = headA;
            else
                p2 = p2.next;
        }
        return p1;
    }
}
